The present invention relates to a storage subsystem which includes a plurality of storage systems to hold redundant data, and a storage system for use in the storage subsystem.
A common storage subsystem includes a plurality of storage systems and a storage controller connected with the plurality of storage systems for controlling the systems. The storage controller divides user data and redundant data into sizes (blocks) of a fixed length, stores as distributed or broadcast the blocks to the respective storage systems and stores the block therein. This type of technique is disclosed, for example, in D. A. Patterson, et al. A Case for Redundant Arrays of Inexpensive Disks (RAID), pp. 1–23 (Proceedings of ACM SIGMOD, 1988). In this disclosure, a storage controller is connected with storage systems via respective interfaces such as SCSI's (Small Computer System Interfaces) for data transfer on a block basis. And the storage systems, when receiving such broadcast block data as mentioned above, independently execute reading/writing operation over the broadcast block data to thereby realize an improvement in performance by multiplexing.
The storage controller includes, at least, a device for controlling an interface with an upper-level device to control data exchange between the storage systems and upper-level device, a device for controlling the interfaces with the storage systems, a cache memory for holding data to be transferred between the upper-level device and storage systems, and a device for integrally controlling these elements. The storage controller performs various operations including dividing operation to blocks for data exchange between the upper-level device and storage systems, block broadcasting operation to the storage systems and converting operation to file data for the upper-level device. Controls to these storage systems are carried out collectively by the storage controller. For this reason, the storage controller is required to process a massive amount of data at a high speed, to which end a high-speed and expensive processor or a large capacity of cache memory is usually mounted, thus realizing a performance improvement.
As another performance improving technique in the storage subsystem, there is considered a technique wherein the operation of creating redundant data at the time of data updating is carried out by one of the storage systems for its data to be updated in order to lighten the burden of the storage controller (e.g., JP-A-7-261946).
In the aforementioned related storage subsystem, various accesses control to the storage systems including data conversion of an access request of a file unit received by the storage controller from the upper-level device into data of a block unit as the processing unit of the storage system, or allocation of the converted block data to the storage systems are concentrated. For this reason, upon newly reading or writing data, the processing performance of the storage controller becomes a bottleneck and an improvement in the entire processing performance of the storage subsystem can be impeded.
Further, for the purpose of increasing the performance of the storage subsystem, this has been attained by preparing a highest performance of processor or a large capacity of cache memory and providing it in the storage controller. This, however, results in that the storage subsystem is increased in its price.
These years, such a storage subsystem tends to increase the number of storage systems included therein, the current situations spurs the above tendency. Even when the above highest performance of processor or the like is prepared, this will be considered to impede the improvement of the processing performance of the storage subsystem.
Further, areas specified by the storage controller as contiguous or continuous areas may sometimes be actually discontinuous. In such a case, even when the storage controller issues an access request indicative of the specification of the continuous areas, actual storage system's access is done to the discontinuous areas, thus resulting in that it takes a lot of time to wait for seek operation or disk rotation and an access performance is decreased. In the related art, no consideration is paid to how to suitably store data when the areas specified by the storage controller as continuous areas is actually discontinuous areas.